I2C外设测试

读写EEPROM

添加代码到vitis应用工程

右击src建立新的文件夹:

image-20250710140513635

建立相关的.c .h文件:

image-20250710140624298

如下图:

image-20250710142508748

编译调试

此时像GPIO操作一样,如果有自定义头文件,则需要将文件目录添加到路径中,步骤如上,最后结果如下图:

image-20250710143029923

核心代码

调试结果

image-20250710090844195

读取温湿度传感器

添加代码到vitis应用工程中

右击src建立新的文件夹:

image-20250710140513635

建立相关的.c .h文件,如下图:

image-20250710143404518

编译调试

核心代码

 

调试结果

image-20250710090903681

读写RTC时钟

添加代码到vitis应用工程

右击src建立新的文件夹:

image-20250710140513635

建立相关的.c .h文件,如下图:

image-20250710143628291

编译调试

核心代码

调试结果

image-20250710090924915

 

 

通过内核自带驱动访问RTC

修改设备树

打开/home/mind/petalinux_projects/petalinux-mind/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi,添加以下内容:

修改完成之后保存退出,重新以下步骤:

将工程目录images -> linux目录中的BOOT.BIN、boot.scr及image.ub复制到sd卡的FAT分区。文件系统不变。重启开发板

系统重启完成之后,查看/dev/目录下有没有一些 rtc 相关的设备文件,如下所示:

image-20250821142505644

可以看到/dev 目录下有一个 rtc 和一个 rtc0 两个设备文件,但是其中 rtc 是 rtc0 的一个软链接文件,那么这个 rtc0 对应的就是我们的 pcf8563 设备,如果系统中没有注册(使用 Linux RTC 设备驱动框架)任何的 RTC 设备,那么在/dev 目录下是没有 rtc 相应的设备文件存在的;如果内核中注册了多个 RTC 设备,则会以 rtc0、rtc1、rtc2……的方式进行命名。 在/sys/class 目录下有一个 rtc 目录,该目录下文件如下所示:

image-20250821142642052

这里的 rtc0 对应的就是 pcf8563 设备。

RTC 时间查看与设置

(1)查看时间:

使用 date 命令查看到的是系统时钟,并不是 RTC 时钟,系统时钟是系统启动之后由内核去维护的,并不是 RTC 硬件去维护的。可以使用hwclock 命令来查看 RTC 时钟

(2)设置 RTC 时间:

设置完成以后再次使用 date 命令查看一下当前时间就会发现时间改过来了

(3)写入到 RTC 里面:

此时系统重启以后时间也不会丢失,如果开发板底板接了纽扣电池,那么开发板即使断电了时间也不会丢失。